# 负责整个项目的配置
class Config:
    # 配置数据库是SQLAlchemy
    HOSTNAME = '127.0.0.1'
    PORT = '3306'
    DATABASE = 'test'
    USERNAME = 'root'
    PASSWORD = 'root'
    DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)

    SQLALCHEMY_DATABASE_URI = DB_URI
    SQLALCHEMY_TRACK_MODIFICATIONS = False  # 不需要跟踪数据的修改

    # 日志的配置
    LOGGING_LEVEL = 'DEBUG'  # 日志等级设计为最低级的
    LOGGING_FILE_DIR = 'logs/' # 日志的目录，采取相对路径，就是在当前项目下的logs路径
    LOGGING_FILE_MAX_BYTES = 300 * 1024 * 1024 # 日志大小为300mb
    LOGGING_FILE_BACKUP = 100  # 日志备份为100个

    # 采用Redis保存数据，默认是内存，需要安装flask-redis
    RATELIMIT_STORAGE_URL = 'redis://127.0.0.1:6379/0' # redis的地址
    # 限制策略：移动窗口：时间窗口会自动变化
    RATELIMIT_STRATEGY = 'moving-window'

    # redis数据库的连接地址,使用数据库1来存放缓存数据包括短信验证码
    REDIS_URL = "redis://127.0.0.1:6379/1"


# 开发环境下的配置信息
class DevelopmentConfig(Config):
    DEBUG = True
    SQLALCHEMY_ECHO = True # 打印sql语句


# 生产环境中的配置信息
class ProductConfig(Config):
    pass


